package com.situ.mall.controller.back;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import org.apache.commons.io.FilenameUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.situ.mall.entity.Result;
import com.situ.mall.util.ImageServerUtil;
import com.situ.mall.util.ImageServerUtil.EnumImageServer;
import com.situ.mall.util.QiniuUtil;

@Controller
@RequestMapping("/upload")
public class UploadController {

	@RequestMapping("/uploadImg.action")
	@ResponseBody
//	public Result uploadImg(MultipartFile file) throws IOException {
//		String newFileName = "";
//		if (ImageServerUtil.IMG_SERVER == EnumImageServer.LOCAL) {
//			newFileName = uploadToLocal(file);
//		} else if (ImageServerUtil.IMG_SERVER == EnumImageServer.QINIU) {
//			newFileName = QiniuUtil.uploadImage(file.getBytes());
//		}
//		
//		// newFileNmae要存储到数据库product表的main_image字段,所以这个文件的名字
//		// 要放到product_insert.jsp的form表单里面
//		return Result.success("上传成功", newFileName);
//	}
//	
//	public String uploadToLocal(MultipartFile file) {
//		// 为了防止文件重名（重名的文件会被覆盖），所以要生成一个不重复的唯一的名字
//		// faf007c466614101afe2fd5ddec5bf55
//		String name = UUID.randomUUID().toString().replace("-", "");
//		// 拿到浏览器传过来文件的名字，但是我们不用这个名字，只是要获取他的后缀
//		// 例如：a.png  
//		String fileName = file.getOriginalFilename();
//		// 获得文件名字后缀: png
//		String extension = FilenameUtils.getExtension(fileName);
//		// faf007c466614101afe2fd5ddec5bf55.png
//		String newFileName = name + "." + extension;
//		
//		// 把这个文件上传到虚拟路径指定的位置：D:\pic下边
//		String filePath = "D:\\pic\\" + newFileName;
//		try {
//			file.transferTo(new File(filePath));
//		} catch (IllegalStateException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		
//		return newFileName;
//	}
	public Result uploadImg(MultipartFile file){
		//为了防止文件重名(重名的文件会被覆盖)，所以要生成一个不重复的唯一的名字
		//8814b83d288e492c8234699302522e84
		String name=UUID.randomUUID().toString().replace("-", "");
		//拿到浏览器传过来文件的名字，但是我们不用这个名字，只是要获取他的后缀
		//例如:a. png
		String fileName=file.getOriginalFilename();
		//获得文件名字后缀: png
		String extension=FilenameUtils.getExtension(fileName);
		String newFileName=name+"."+extension;
		//把这个文件上传到虚拟路径指定的位置: D:\pic下边
		String filePath="D:\\pic\\"+newFileName;
		try {
			file.transferTo(new File(filePath));
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		// newFileNmae 要存储到数据库product表的main_image字段,所以这个文件的名字
		//要放到product_insert.jsp的form表单里面
		return Result.success("上传成功", newFileName);
	}
	
	
	public static void main(String[] args) {
		String uuid = UUID.randomUUID().toString().replace("-", "");
		System.out.println(uuid);// faf007c466614101afe2fd5ddec5bf55
	}
}